package max.sort.bubble;

import max.Swap;

/**
 * O(n*n)
 *
 * @author Max
 * @date 2021年4月13日
 * @description
 */
public class BubbleSort {
	private static final BubbleSort bubbleSort = new BubbleSort();

	private BubbleSort() {

	}

	public static BubbleSort instance() {
		return bubbleSort;
	}

	public void sortAsc1(int[] array) {
		if (array == null || array.length < 2) {
			return;
		}
		// 冒泡上界往左缩
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length - i - 1; j++) {
				if (array[j] > array[j + 1]) {
					Swap.array1(array, j, j + 1);
				}
			}
		}
	}

	public void sortAsc2(int[] array) {
		if (array == null || array.length < 2) {
			return;
		}
		for (int i = array.length - 1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				if (array[j] > array[j + 1]) {
					Swap.array1(array, j, j + 1);
				}
			}
		}
	}

}
